package com.example.server.web.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.server.web.domain.Questionnaire;
import com.example.server.web.domain.page.PageQueryDto;
import com.example.server.web.domain.dto.QuestionnaireDto;
import com.example.server.web.domain.dto.QuestionnaireParamDto;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author 作者
 * @since 2023-04-04
 */
public interface QuestionnaireService extends IService<Questionnaire> {

    /**
     * 添加问卷
     * @param questionnaire
     */
    void add(Questionnaire questionnaire);

    /**
     * 查询问卷（包含问题）
     * @param id
     * @return
     */
    QuestionnaireDto query(Long id);

    /**
     * 删除问卷（可批量删除）
     * @param ids
     */
    void deletes(List<Long> ids);

    /**
     * 查看班级的问卷（分页数据）
     * @param classId
     * @param pageQueryDto
     * @return
     */
    Map queryByClassId(Long classId, PageQueryDto pageQueryDto);

    /**
     * 学生查看本人的问卷（分页数据）
     * @return
     */
    Map queryByStu(PageQueryDto pageQueryDto);

    /**
     * 更新问卷完成的人数
     * @param questionnaireId
     */
    void addCompleteSum(Long questionnaireId);

    /**
     * 查询问卷分页信息
     * @param dto
     * @param pageQueryDto
     * @return
     */
    Map queryPage(QuestionnaireParamDto dto, PageQueryDto pageQueryDto);

    /**
     * 一键回收问卷
     * @param id
     */
    void recovery(String id);
}
